package cn.cosmosx.base.lock;

import java.lang.annotation.*;

/**
 * 分布式锁注解
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Lock {
    /**
     * 锁标识（支持Spring EL表达式，如：#param.name，param为方法参数形参名称）
     */
    String value();

    /**
     * 锁前缀
     */
    String prefix() default "lock";

    /**
     * 超时重试次数
     */
    int tryCount() default 3;

    /**
     * 释放时间，秒 s 单位
     */
    long lockTime() default 30L;
}